
DefConst ( 'k_PrefVRootSym, Intern ( kAppSymbol & ":PrefV" ) );

print (k_PrefVRootSym);

DefConst ( 'k_AuthorName, "Les R. Titze" );

DefConst ( 'k_CopyrightStr,
	LocObj ( " 1997 Netstrategy Software", 'extrasSlip.copyString ) );

partData := {
	author:			k_AuthorName,
	copyright:		k_CopyrightStr,
	};

constant kFilterVersion  := "1.4.2FC01" & if language = 'German then " D   ";
constant kPartName       := LocObj ( "inet Headers", 'saveHdrs.extrasLabel );
constant kPartFrameTitle := kPartName;

constant kPartInfoLabel  := LocObj ( "inet Headers", 'saveHdrs.infoLabel );

print ( DateNTime(Time()) && "<---" && $' & kPartName & $' && "as '|" & kAppSymbol & "| Version" && kFilterVersion );

DefConst ( 'k_BuildTime, Time() );

DefConst ( 'k_yearMonthDayStrSpec, 180969 ); // (ROM_datetimestrspecs).yearMonthDayStrSpec

DefConst ( 'k_InfoHdrStr, kPartInfoLabel && kFilterVersion );

DefConst ( 'k_AboutText, LocObj ( "Created:", 'extrasSlip.created )
		&& LongDateStr ( k_BuildTime, 180969 ) & unicodeCR
		& LocObj ( "Author:", 'extrasSlip.author ) && k_AuthorName & unicodeCR
		& k_CopyrightStr & unicodeCR
		& unicodeCR & LocObj (
		"Message Header prefs for the EnRoute internet transport.",
		'saveHdrs.extrasDescrip ) );

//SetPartFrameSlot ( 'text, kPartName );
//SetPartFrameSlot ( 'labels, '_extensions );

InstallScript := func ( partFrame )
	begin
	local extnFrame := GetLayout ( "svHdrsExtn" );

	extnFrame:?InstallExtension();
	end;

RemoveScript := func ( removeFrame )
	begin
	try
		local prefV := GetRoot().(k_PrefVRootSym);
		if prefV and prefV.viewCObject then
			begin
			prefV:Close();
			end;
	onexception |evt.ex| do nil;
	RemoveSlot ( GetRoot(), k_PrefVRootSym );

	local tpSymbols := [];
	local gEnRoute := GetGlobalVar ( 'EnRouteCore );
	if gEnRoute then
		begin
		local extendA := gEnRoute.extended;
		if extendA and Length ( extendA ) > 0 then
			begin
			local inIx;
			while ( inIx := LSearch ( extendA, kAppSymbol, 0, '|=|, 'id ) ) do
				begin
				AddArraySlot ( tpSymbols, extendA[inIx].transportSym );
				ArrayRemoveCount ( extendA, inIx, 1 );
				if kDebugOn then print ( "Removed from EnRoute Core" );
				end;
			end;
		end;

	local tpSym;
	foreach tpSym in tpSymbols do
		begin
		if tpSym then
			begin
			local transport := GetRoot().(tpSym);
			if transport and transport.prefExtns then
				begin
				local extnsA := transport.prefExtns;
				local inIx;
				while ( inIx := LSearch ( extnsA, kAppSymbol, 0, '|=|, 'id ) ) do
					begin
					ArrayRemoveCount ( extnsA, inIx, 1 );
					if kDebugOn then print ( "Removed from prefExtns" );
					end;
				if Length ( transport.prefExtns ) = 0 then
					RemoveSlot ( transport, 'prefExtns );
				end;
			end;
		end;
	end;
